package Utils;


import org.apache.commons.codec.digest.DigestUtils;

import java.util.UUID;

public class Md5 {

    public final static  String md5key = "lagou";
    /**
     * MD5方法
     * @param text 明文
     * @param key 密钥
     * @return 密文
     * @throws Exception
     */

    // 进行加密
    public static String md5(String text, String key) throws Exception {
        //加密后的字符串
        String encodeStr= DigestUtils.md5Hex(text+key);
        System.out.println("MD5加密后的字符串为:encodeStr="+encodeStr);
        return encodeStr;
    }

    /**
     * MD5验证方法
     * @param text 明文
     * @param key 密钥
     * @param md5 密文
     * @return true/false
     * @throws Exception
     */

    // 进行验证
    public static boolean verify(String text, String key, String md5) throws Exception {
        //根据传入的密钥进行验证
        String md5Text = md5(text, key);
        if(md5Text.equalsIgnoreCase(md5))
        {
            System.out.println("MD5验证通过");
            return true;
        }
        return false;
    }

    // 使用 MD5
    public static void main(String[] args) throws Exception {

       // 注册 用户名：tom 密码：123456
       // 添加用户的时候 将明文 转换成 密文
        String password = Md5.md5("111111", "lagou");
        System.out.println(password);


        // 登录 用户名：tom 密码：123456
        // 1. 根据前台传来的用户名tom 先在user表中查询对应的 密文密码
        // SELECT * FROM user WHERE username = tom


        // 2. 调用Md5 方法verify进行方法校验 并判断是否相等
//        Md5.verify("123456", "password",)
    }


}
